Auth0 PasswordlessとMFAの設定方法(Twilio SMS)
概要
インターネット上、アカウントにアクセスすることにPasswordless(パスワードレス)やMFA(多要素認証)を使って、よりセキュアなログインフローができます。
Auth0上テスト用のSMS機能は回数制限がある(2022年5月時点は100回)ので、TwilioのSMS機能を使ってAuth0でPassworlessやSMSのMFAを設定してみようと思います。
事前準備
- Twilioアカウント
- Twilioの携帯番号(USリジョン、トライアルアカウントに無料で買えるはず)
- Auth0テナント
- Auth0のSPAテンプレートアプリ(callback URLなどを正しく設定される状態)
- Email-Passwordでログインするアプリのユーザーアカウント(MFAテスト用)
Twilio Messaging Serviceの作成
Twilio ConsoleのMessaging Serviceに入ってもらって、Create Messaging Service
を押します。
Step 1
名前は好きなのを入れて、目的はVerify users
にします。
Step 2
携帯番号をSender
として追加します。
Step 3
Incoming MessagesをDrop the message
にしてから(受信に料金が発生するかもしれませんので、受信を無視にします)、次に進めます。
Step 4
デフォルトのままにし、Complete Messagine Service Setup -> View my new Messaging Service
で作ったMessaging ServiceのMessaging Service SID
ほメモして置きます(後で使いますので)
Twilio Account SIDとAuth Tokenの確認
アカウントのダッシュボードに入って、Account SID
とAuth Token
をメモしてもらうか、別のタブで開いたままにし、これからAuth0のSMS設定に使います。
Auth0 Passwordless
Auth0テナントのAuthentication -> Passwordless
に入って、SMSをオンにします。
SMSをオンにして、新しいフォームが表示されます。
フォームに必要な情報を入れます。
- Twilio SID (Twilio Account SID)
- Twilio AuthToken (Twilio Auth Token)
- SMS Source -> Use Messaging Service
- Messaging Service SID
- SMS Syntax -> Markdown
を入力、設定します。
同じフォームのApplications
タブに事前用意したSPA(もしくは他のテンプレートアプリ)をSMSオンにします。
Branding -> Universal Login -> Login
で、Customize Login Page
をオンにし、下にあるHTMLのところ、テンプレートをLock (Passworldless)
にします。
設定したものをセーブすれば用意されたSPAを実行してみて、ログインボタンを押してからログイン画面に入ります。携帯番号のログイン画面が出ています。自分の番号を入力し、コードが送ってくれます。次の画面にコードを入力すればログイン成功となります。
MFA
(前のPasswordlessを設定した場合はまずPasswordlessをオフにし、Universal Loginもカスタマイズもオフにします)
Auth0ダッシュボードのSecurity -> Multi-factor Auth -> Phone Message
に入ります。
- Twilio
- SMS
- Twilio SID (Twilio Account SID)
- Twilio AuthToken (Twilio Auth Token)
- SMS Source -> Use Messaging Service
- Messaging Service SID
の設定を行います。
そしてSecurity -> Multi-Fact Auth
の画面に戻って、最後の部分にRequire Multi-factor Auth
をAlways
にし、設定をセーブします。
新規の「Email-Password」ユーザーを登録したら、携帯番号を紐づくことが聞かれてます。
自分の携帯番号を入力し、次の画面にコードを入力すればユーザー初期MFA設定が完成され、今後ログインする際は携帯番号にコードを送ることでログインするようになります。
以上です。